The invention relates generally to transmitting data, including video and audio data, and, particularly, to a method of resource-efficient and scalable streaming media distribution for asynchronous receivers.
Continuous streaming media is emerging as an increasingly popular data delivery form for many applications, such as entertainment, distance learning, news delivery, and the like. Streaming data, however, usually consumes a great deal of resources, including server computation and I/O power, network bandwidth, and user buffer space. Thus, with the increasing popularity of such streaming media services, high load becomes a threat to both the servers involved and the network, especially close to the servers.
For example, many users will request popular data, such as a blockbuster movie, in a short time period. If the data stream is delivered using unicast, then the load on server and the load on network are both roughly proportional to the number of users during the play out time period. Further to the example, if 1000 users request a high quality two-hour video in a short time, then the total network bandwidth consumed ranges from 3 Gbps to 8 Gbps because a single typically unicast needs a network bandwidth of 3 Mbps to 8 Mbps. Not only is the necessary bandwidth extremely expensive, the server""s load is roughly 1000 times of one unicast load. So it becomes more economical, both for the server and the network, to multicast the data to a group of users requesting the same data using multicast mechanisms and broadcast transmitters (e.g., terrestrial or geostationary). Because both the server load and the network bandwidth consumption are roughly the same as those for one unicast delivery, multicast is particularly suitable for delivering data to a large group of users.
Unfortunately, multicast only works well for synchronous users, i.e., the users have to join the multicast group at the same time in order to share the same data stream. The users are limited to receiving the data transmission at predefined times so they will miss the beginning, or even the entire transmission, if they join late. For most applications, however, users usually request the same streaming data at different times, i.e., user data requests are usually asynchronous. One technique to resolve this problem is to periodically multicast the same data stream and exploit the users""buffer space to synchronize their data reception. The shortcoming of this kind of scheme is of course a delay of data delivery to the users. A trade-off between the data delay and resources (server, network and user buffer space) has to be made. For example, if a two-hour video is multicast every 10 minutes, then the resources consumption is about 12 times as that for one unicast. But if the initial delay is reduced to one minute, then the resources consumption increases another 10-fold. Another disadvantage of a multicast is the relatively high cost of implementing a reliable multicast channel over a generally unreliable physical communication media. If different receivers in a multicast group lose different data packets, the sender has to resend them either using unicasts or multicast.
For these reasons, an efficient and scalable method of providing streaming media for asynchronous receivers is desired. To exploit the efficiency and scalability of multicast and solve the inherent problems with multicast transmissions, an improved data streaming scheme using multicast, based on error control codes is also desired.
The following patents, the entire disclosures of which are incorporated herein by reference, disclose various aspects of streaming media delivery: U.S. Pat. Nos. 5,936,659 and 5,751,336 relate to pyramid broadcasting transmission schemes; U.S. Pat. Nos. 5,606,359 and 5,442,390 disclose video-on-demand hardware; U.S. Pat. No. 6,047,317 relates to interactive television navigation; U.S. Pat. No. 5,781,227 relates to fading between media streams; U.S. Pat. No. 6,091,455 discloses a statistical multiplexer for recording video; U.S. Pat. No. 6,085,221 relates to equalizing bandwidth; U.S. Pat. No. 6,057,832 discloses dual stream video-on-demand; U.S. Pat. Nos. 5,973,680 and 5,969,763 relate to buffering; U.S. Pat. Nos. 5,964,829 and 6,032,200 relate to playout scheduling; U.S. Pat. No. 5,935,206 discloses automatic replication of digital video for video-on-demand; and U.S. Pat. No. 5,933,603 relates to server caching.
The invention meets the above needs and overcomes the deficiencies of the prior art by providing an improved method of streaming media for asynchronous receivers. Among the several objects and features of the present invention may be noted the provision of such method that permits multicasting a single data stream, which is an encoded form of the original data; the provision of such method that permits a user to join the multicast group at any time during the data transmission period; the provision of such method that permits the user to play out the data from its beginning after a small fixed time delay; the provision of such method that consumes resources at a rate proportional to that for a single unicast of the original data; and the provision of such method that is economically feasible and commercially practical.
Briefly described, a method of distributing streaming media to one or more users embodies aspects of the present invention. The method includes the step of partitioning the media into a plurality of segments. Each segment has data associated with at least a portion of one or more of the data units. The media has a plurality of successive data units in a predefined order and each segment further includes information for positioning the data relative to the order of the data units. The method also includes defining a transmission sequence for the segments having a plurality of successive time slots. In turn, the sequence enables reconstruction of an i-th data unit from Li segments. The method further includes the steps of transmitting the segments according to the transmission sequence, each segment being transmitted during one of the time slots, and processing the transmitted segments based on the positioning information to reconstruct the media.
In another embodiment, the present invention is directed to a method of distributing streaming media to one or more users. The method includes the step of partitioning the media into a plurality of segments. Each segment has data associated with at least a portion of one or more of the data units. The media has a plurality of successive data units in a predefined order and each segment further includes information for positioning the data relative to the order of the data units. The method also includes defining a transmission sequence for the segments having a plurality of successive time slots. The sequence includes data associated with an i-th data unit at least every Li time slots. The method further includes the steps of transmitting the segments according to the transmission sequence, each segment being transmitted during one of the time slots, and processing the transmitted segments based on the positioning information to reconstruct the media.
Yet another embodiment of the invention is directed to a method of distributing streaming media to one or more users. The method includes the step of partitioning the media into one or more subunits. This step includes partitioning an i-th data unit into mi subunits, where ixe2x89xa71 and mixe2x89xa71. The method also includes assigning data associated with at least one subunit of each data unit to each of a plurality of segments. Each segment has data associated with at least a portion of one or more of the data units as well as information for positioning the data relative to the order of the data units. The method includes the step of defining a transmission sequence for the segments having a plurality of successive time slots. In turn, the sequence enables reconstruction of an i-th data unit from Li segments. The method further includes the steps of transmitting the segments according to the transmission sequence, each segment being transmitted during one of the time slots, and processing the transmitted segments based on the positioning information to reconstruct the media.
Alternatively, the invention may comprise various other methods and systems.
Other objects and features will be in part apparent and in part pointed out hereinafter.